#ifndef GAMEOPTION_H
#define GAMEOPTION_H

#include <QObject>
#include <QSize>
#include <QList>

class GameOption
{
public:
    typedef enum Option_ {
        NoOption,
        MapSize,
        PlayerSelection,
        Rounds
    } Option;

    typedef enum Player_ {
        LocalPlayer,
        NetworkBot,
        Anarki,
        AngryDuke,
        Iceman
    } Player;

    GameOption(QString desc);
    GameOption(QSize mapSize, QString desc);
    GameOption(Player player, QString name);
    GameOption(int rounds, QString desc);

    inline Option   option() const     { return mOption;      }
    inline QSize    mapSize() const    { return mMapSize;     }
    inline int      rounds() const     { return mRounds;      }
    inline Player   player() const     { return mPlayer;      }
    inline QString  description()const { return mDescription; }
    
private:
    Option  mOption;
    QSize   mMapSize;
    int     mRounds;
    Player  mPlayer;
    QString mDescription;
};

typedef QList<GameOption>  GameOptions;

#endif // GAMEOPTION_H
